#ifndef DECODER_H
#define DECODER_H

#include "main.h"
#include "GF.h"
#include "gf_types.h"
#include "poly.h"
#include "decoder_functions.h"

/* Function declarations */
int fileLength(FILE *filePtr, int codeLen);
void serialDecoder(int m, Matrix *add_one, int t, char *encoded, char *decoded, int timeFlag);
void pthreadsDecoder(int m, Matrix *add_one, int t,char *encoded, char *decoded, int timeFlag);
void openMPDynamicDecoder(int m, Matrix *add_one, int t, int p, char *encoded, char *decoded, int timeFlag);
void openMPStaticDecoder(int m, Matrix *add_one, int t, int p, char *encoded, char *decoded, int timeFlag);
void openMPGuidedDecoder(int m, Matrix *add_one, int t, int p, char *encoded, char *decoded, int timeFlag);

#endif
